package 面向对象_上.g再谈方法.a重载;
/*
* 方法的重载（overload） loading。。。。
* 1.重载的概念
* 在同一个类中，允许存在一个以上的同名方法，只要它们的参数个数或者参数类型不同即可。
*  "两同一不同"：同一个类，相同方法名，参数列表不同，参数个数不同，参数类型不同
* 2.重载的特点：
* 与返回值类型无关，只看参数列表，且参数列表必须不同。(参数个数或参数类
* 型)。调用时，根据方法参数列表的不同来区别。
* 3.判断方法是否重载
*   与方法的权限修饰符、返回值类型、形参变量名、方法体都没有关系！！！
* 4.在通过对象调用方法的时候，如何确定一个指定的方法：
*       方法名--->参数列表
* */
public class OverLoadTest {
    public static void main(String[] args) {

        OverLoadTest test = new OverLoadTest();
        test.getSum(1,2);
        test.getSum(0.0,0.0);
        test.getSum(1,"123");
        test.getSum("123",1);

    }

    //重载
    public void getSum(int i,int j){
        System.out.println(1);
    }

    public void getSum(double d1,double d2){
        System.out.println(2);
    }

    public void getSum(int i,String s){
        System.out.println(3);
    }

    public void getSum(String s,int i){
        System.out.println(4);
    }
//  同效
//    public void getSum(int x,int y){
//
//    }

//    private void getSum(int i,int j){
//
//    }
}


/*
*
* 1.判断：与void show(int a,char b,double c){}构成重载的有：

a)void show(int x,char y,double z){} // no
b)int show(int a,double c,char b){} // yes
c) void show(int a,double c,char b){} // yes
d) boolean show(int c,char b){} // yes
e) void show(double c){} // yes
f) double show(int x,char y,double z){} // no
g) void shows(){double c} // no

* */